package net.hn.hnms.biz.mine.domain;

import javax.persistence.*;
import java.sql.Date;
import java.util.Objects;

/**
 * Author: PanSX
 * Date: 2022/8/5 14:36
 */
@Entity
@Table(name = "dim_company_colliery_coal", schema = "public", catalog = "huaneng-smart-mine")
public class DimCompanyCollieryCoal {
    private String id;
    private String coalMineCode;
    private String collieryType;
    private String miningPermit;
    private Date miningPermitBeginDate;
    private Date miningPermitEndDate;
    private Integer gasLevel;
    private String productionApprovalHolder;
    private String productionCertificate;
    private Date mineProductionDate;
    private String mineableReserve;
    private String coalCategory;
    private String miningMethod;
    private String mineShaftType;
    private String designedProductionCapacity;
    private String approvalProductionCapacity;
    private String workingSeam;
    private String hydrogeologicalCondition;
    private Integer isRockBurst;
    private String powerSupplyStrategy;
    private String ventilationStrategy;
    private String transportStrategy;
    private String drainageStrategy;
    private String disasterType;
    private String coalDustExplosion;
    private String coalDustPyrophoric;
    private Integer averageWaterLeakage;
    private Integer maximumWaterLeakage;
    private Long miningDepthLimit;
    private String createUserId;
    private Date createTime;
    private String updateUserId;
    private Date updateTime;

    @Id
    @Column(name = "id")
    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    @Basic
    @Column(name = "coal_mine_code")
    public String getCoalMineCode() {
        return coalMineCode;
    }

    public void setCoalMineCode(String coalMineCode) {
        this.coalMineCode = coalMineCode;
    }

    @Basic
    @Column(name = "colliery_type")
    public String getCollieryType() {
        return collieryType;
    }

    public void setCollieryType(String collieryType) {
        this.collieryType = collieryType;
    }

    @Basic
    @Column(name = "mining_permit")
    public String getMiningPermit() {
        return miningPermit;
    }

    public void setMiningPermit(String miningPermit) {
        this.miningPermit = miningPermit;
    }

    @Basic
    @Column(name = "mining_permit_begin_date")
    public Date getMiningPermitBeginDate() {
        return miningPermitBeginDate;
    }

    public void setMiningPermitBeginDate(Date miningPermitBeginDate) {
        this.miningPermitBeginDate = miningPermitBeginDate;
    }

    @Basic
    @Column(name = "mining_permit_end_date")
    public Date getMiningPermitEndDate() {
        return miningPermitEndDate;
    }

    public void setMiningPermitEndDate(Date miningPermitEndDate) {
        this.miningPermitEndDate = miningPermitEndDate;
    }

    @Basic
    @Column(name = "gas_level")
    public Integer getGasLevel() {
        return gasLevel;
    }

    public void setGasLevel(Integer gasLevel) {
        this.gasLevel = gasLevel;
    }

    @Basic
    @Column(name = "production_approval_holder")
    public String getProductionApprovalHolder() {
        return productionApprovalHolder;
    }

    public void setProductionApprovalHolder(String productionApprovalHolder) {
        this.productionApprovalHolder = productionApprovalHolder;
    }

    @Basic
    @Column(name = "production_certificate")
    public String getProductionCertificate() {
        return productionCertificate;
    }

    public void setProductionCertificate(String productionCertificate) {
        this.productionCertificate = productionCertificate;
    }

    @Basic
    @Column(name = "mine_production_date")
    public Date getMineProductionDate() {
        return mineProductionDate;
    }

    public void setMineProductionDate(Date mineProductionDate) {
        this.mineProductionDate = mineProductionDate;
    }

    @Basic
    @Column(name = "mineable_reserve")
    public String getMineableReserve() {
        return mineableReserve;
    }

    public void setMineableReserve(String mineableReserve) {
        this.mineableReserve = mineableReserve;
    }

    @Basic
    @Column(name = "coal_category")
    public String getCoalCategory() {
        return coalCategory;
    }

    public void setCoalCategory(String coalCategory) {
        this.coalCategory = coalCategory;
    }

    @Basic
    @Column(name = "mining_method")
    public String getMiningMethod() {
        return miningMethod;
    }

    public void setMiningMethod(String miningMethod) {
        this.miningMethod = miningMethod;
    }

    @Basic
    @Column(name = "mine_shaft_type")
    public String getMineShaftType() {
        return mineShaftType;
    }

    public void setMineShaftType(String mineShaftType) {
        this.mineShaftType = mineShaftType;
    }

    @Basic
    @Column(name = "designed_production_capacity")
    public String getDesignedProductionCapacity() {
        return designedProductionCapacity;
    }

    public void setDesignedProductionCapacity(String designedProductionCapacity) {
        this.designedProductionCapacity = designedProductionCapacity;
    }

    @Basic
    @Column(name = "approval_production_capacity")
    public String getApprovalProductionCapacity() {
        return approvalProductionCapacity;
    }

    public void setApprovalProductionCapacity(String approvalProductionCapacity) {
        this.approvalProductionCapacity = approvalProductionCapacity;
    }

    @Basic
    @Column(name = "working_seam")
    public String getWorkingSeam() {
        return workingSeam;
    }

    public void setWorkingSeam(String workingSeam) {
        this.workingSeam = workingSeam;
    }

    @Basic
    @Column(name = "hydrogeological_condition")
    public String getHydrogeologicalCondition() {
        return hydrogeologicalCondition;
    }

    public void setHydrogeologicalCondition(String hydrogeologicalCondition) {
        this.hydrogeologicalCondition = hydrogeologicalCondition;
    }

    @Basic
    @Column(name = "is_rock_burst")
    public Integer getIsRockBurst() {
        return isRockBurst;
    }

    public void setIsRockBurst(Integer isRockBurst) {
        this.isRockBurst = isRockBurst;
    }

    @Basic
    @Column(name = "power_supply_strategy")
    public String getPowerSupplyStrategy() {
        return powerSupplyStrategy;
    }

    public void setPowerSupplyStrategy(String powerSupplyStrategy) {
        this.powerSupplyStrategy = powerSupplyStrategy;
    }

    @Basic
    @Column(name = "ventilation_strategy")
    public String getVentilationStrategy() {
        return ventilationStrategy;
    }

    public void setVentilationStrategy(String ventilationStrategy) {
        this.ventilationStrategy = ventilationStrategy;
    }

    @Basic
    @Column(name = "transport_strategy")
    public String getTransportStrategy() {
        return transportStrategy;
    }

    public void setTransportStrategy(String transportStrategy) {
        this.transportStrategy = transportStrategy;
    }

    @Basic
    @Column(name = "drainage_strategy")
    public String getDrainageStrategy() {
        return drainageStrategy;
    }

    public void setDrainageStrategy(String drainageStrategy) {
        this.drainageStrategy = drainageStrategy;
    }

    @Basic
    @Column(name = "disaster_type")
    public String getDisasterType() {
        return disasterType;
    }

    public void setDisasterType(String disasterType) {
        this.disasterType = disasterType;
    }

    @Basic
    @Column(name = "coal_dust_explosion")
    public String getCoalDustExplosion() {
        return coalDustExplosion;
    }

    public void setCoalDustExplosion(String coalDustExplosion) {
        this.coalDustExplosion = coalDustExplosion;
    }

    @Basic
    @Column(name = "coal_dust_pyrophoric")
    public String getCoalDustPyrophoric() {
        return coalDustPyrophoric;
    }

    public void setCoalDustPyrophoric(String coalDustPyrophoric) {
        this.coalDustPyrophoric = coalDustPyrophoric;
    }

    @Basic
    @Column(name = "average_water_leakage")
    public Integer getAverageWaterLeakage() {
        return averageWaterLeakage;
    }

    public void setAverageWaterLeakage(Integer averageWaterLeakage) {
        this.averageWaterLeakage = averageWaterLeakage;
    }

    @Basic
    @Column(name = "maximum_water_leakage")
    public Integer getMaximumWaterLeakage() {
        return maximumWaterLeakage;
    }

    public void setMaximumWaterLeakage(Integer maximumWaterLeakage) {
        this.maximumWaterLeakage = maximumWaterLeakage;
    }

    @Basic
    @Column(name = "mining_depth_limit")
    public Long getMiningDepthLimit() {
        return miningDepthLimit;
    }

    public void setMiningDepthLimit(Long miningDepthLimit) {
        this.miningDepthLimit = miningDepthLimit;
    }

    @Basic
    @Column(name = "create_user_id")
    public String getCreateUserId() {
        return createUserId;
    }

    public void setCreateUserId(String createUserId) {
        this.createUserId = createUserId;
    }

    @Basic
    @Column(name = "create_time")
    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    @Basic
    @Column(name = "update_user_id")
    public String getUpdateUserId() {
        return updateUserId;
    }

    public void setUpdateUserId(String updateUserId) {
        this.updateUserId = updateUserId;
    }

    @Basic
    @Column(name = "update_time")
    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        DimCompanyCollieryCoal that = (DimCompanyCollieryCoal) o;
        return Objects.equals(id, that.id) &&
                Objects.equals(coalMineCode, that.coalMineCode) &&
                Objects.equals(collieryType, that.collieryType) &&
                Objects.equals(miningPermit, that.miningPermit) &&
                Objects.equals(miningPermitBeginDate, that.miningPermitBeginDate) &&
                Objects.equals(miningPermitEndDate, that.miningPermitEndDate) &&
                Objects.equals(gasLevel, that.gasLevel) &&
                Objects.equals(productionApprovalHolder, that.productionApprovalHolder) &&
                Objects.equals(productionCertificate, that.productionCertificate) &&
                Objects.equals(mineProductionDate, that.mineProductionDate) &&
                Objects.equals(mineableReserve, that.mineableReserve) &&
                Objects.equals(coalCategory, that.coalCategory) &&
                Objects.equals(miningMethod, that.miningMethod) &&
                Objects.equals(mineShaftType, that.mineShaftType) &&
                Objects.equals(designedProductionCapacity, that.designedProductionCapacity) &&
                Objects.equals(approvalProductionCapacity, that.approvalProductionCapacity) &&
                Objects.equals(workingSeam, that.workingSeam) &&
                Objects.equals(hydrogeologicalCondition, that.hydrogeologicalCondition) &&
                Objects.equals(isRockBurst, that.isRockBurst) &&
                Objects.equals(powerSupplyStrategy, that.powerSupplyStrategy) &&
                Objects.equals(ventilationStrategy, that.ventilationStrategy) &&
                Objects.equals(transportStrategy, that.transportStrategy) &&
                Objects.equals(drainageStrategy, that.drainageStrategy) &&
                Objects.equals(disasterType, that.disasterType) &&
                Objects.equals(coalDustExplosion, that.coalDustExplosion) &&
                Objects.equals(coalDustPyrophoric, that.coalDustPyrophoric) &&
                Objects.equals(averageWaterLeakage, that.averageWaterLeakage) &&
                Objects.equals(maximumWaterLeakage, that.maximumWaterLeakage) &&
                Objects.equals(miningDepthLimit, that.miningDepthLimit) &&
                Objects.equals(createUserId, that.createUserId) &&
                Objects.equals(createTime, that.createTime) &&
                Objects.equals(updateUserId, that.updateUserId) &&
                Objects.equals(updateTime, that.updateTime);
    }

    @Override
    public int hashCode() {
        return Objects.hash(id, coalMineCode, collieryType, miningPermit, miningPermitBeginDate, miningPermitEndDate, gasLevel, productionApprovalHolder, productionCertificate, mineProductionDate, mineableReserve, coalCategory, miningMethod, mineShaftType, designedProductionCapacity, approvalProductionCapacity, workingSeam, hydrogeologicalCondition, isRockBurst, powerSupplyStrategy, ventilationStrategy, transportStrategy, drainageStrategy, disasterType, coalDustExplosion, coalDustPyrophoric, averageWaterLeakage, maximumWaterLeakage, miningDepthLimit, createUserId, createTime, updateUserId, updateTime);
    }
}
